{{tag>brouillon programmation}}
====== Apprentissage C/C++ sur GNU/Linux ======


===== Introduction =====

Cette doc est destinée aux programmeurs ou aux futurs programmeurs. Cette doc n'est pas aboutie mais en discussion sur le [[https://forum.ubuntu-fr.org/viewtopic.php?id=230154|forum]] pour le moment.

En effet, il se destine aux débutants et à ceux qui veulent se familiariser avec les outils de programmation sous Ubuntu.
Pour ce cours, nous utiliserons l'éditeur (qui a dit OS ?) [[Emacs]]. L'installation et la configuration de Emacs est décrite plus bas.

Emacs se distingue des autres éditeurs de textes car il est **très** pratique pour la programmation.

Si vous souhaitez un autre IDE vous pouvez voir [[ide|la page qui les concerne]] et choisir votre préféré.

===== Installation d'un éditeur ou IDE =====
FIXME mettre en forme des liens vers les principaux éditeurs ([[vim|vim]], [[emacs|emacs]]…) et IDE ([[visual_studio_code|Visual Studio Code]], [[eclipse|IDE : Eclipse]], [[code_blocks|Code::Blocks]]…)
[[emacs|voir la documentation d'Emacs]]

===== Installation des outils de compilation =====

Nous allons installer les différents outils nécessaires à la compilation ([[gcc|gcc]]), ou à l'utilisation d'un Makefile, etc.

Pas plus difficile que d'installer Emacs, puisqu'il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] : **[[apt>build-essential|build-essential]]**

===== Premiers pas sous Emacs =====

=== Avant tout ===

Sachez que les utilisateurs d'Emacs utilisent très fréquemment des raccourcis claviers, plus précisément des **combinaisons de touches**.

C-p signifie que vous devez laisser enfoncé la touche Ctrl et appuyer en même temps sur la touche "p".

M-x signifie que vous devez laisser enfoncé la touche Méta (si vous n'avez pas utilisé la touche Alt ou Echap) et appuyer en même temps sur la touche "x".

=== Lancer Emacs ===

Emacs se trouve dans "Application->Programmation"
Vous pouvez lancer emacs dans une console en tapant tout simplement "emacs"

=== Commandes de bases ===

Rien n'est mieux expliqué que le tutoriel intégré à Emacs.

Pour l'afficher, faites la combinaison de touches C-h t (faire la combinaison de touche Ctrl et h puis appuyer sur t (comme tutoriel)).


===== Makefile =====
Le Makefile est un fichier qui permet de faciliter la compilation d'un projet, plus besoin de se soucier des links, des ressources externes,...

[[make|voir comment utiliser make]]
===== Documentation =====

=== Comment consulter l'aide ===

FIXME

=== Documentation du langage C ===

Installer le paquet **[[apt>manpages-dev|page man pour les dévs]]** ou **[[apt>manpages-fr-dev|page man pour les dévs]]** pour la documentation en français.
=== Référence des fonctions standards ===

La librairie utilisée pour développer sur GNU/Linux est la GNU C Library. Elle implémente les fonctions standard de l'ISO C et de POSIX.
La documentation est consultable en ligne : [[http://www.gnu.org/software/libc/manual/| libC manuel]] ou peut être téléchargée sur votre PC en installant le paquet **[[apt>glibc-doc]]**.

Après avoir installé le paquet le manuel se trouve dans : ''/usr/share/doc/glibc-doc/html/'' , vous pouvez le consulter en ouvrant ''/usr/share/doc/glibc-doc/html/index.html'' à copier-coller dans votre navigateur.

===== Voir aussi =====
* [[:/tutoriel/comment_utiliser_mingw32_pour_faire_des_executables_windows | MingW32]] - Cross Compilateur permettant le développement sous Linux d'applications **C** à exécuter sous Windows

===== Voir aussi =====
https://opensource.apple.com/source/clang/clang-23/clang/tools/clang/www/comparison.html
Differences entre les différents compilateurs: Clang, GCC, Elsa, ...